/********************************************************************************
*Function:int main(int argc,char **argv)
*Description:程序主函数
*Input:int argc,char **argv
*Output:
*Return:int
*Date：Fri May 09 17:45:38 UTC 2014
Author:renjianwu
********************************************************************************/

/*******************************头文件引用区****************************************/
#include"global.h"
#include"screen.h"
#include"fpga.h"
#include"usage.h"
#include"temperature.h"
#include"cronwork.h"
#include"clock.h"

/*******************************函数调用区****************************************/
int main(int argc,char **argv)
{
	if(argc < 2)
	{	
		printf("Need at least 2 Parameters.\n");
		usage();
		return ARG_ERR;
	}
	
	opterr = 0;
	optarg = NULL;

	float ftmp = 0;//
	char* short_options="w:r:tk:f:c:";//定义一个指针变量，存放字符选项

	//命令行选项和参数提取，并对各个函数返回值进行处理
	while((opt = getopt(argc, argv, short_options)) != -1)
	{
		switch(opt)
		{
		case 'w':
		case 'r'://读写屏幕配置参数分支		
			if(optarg != NULL)
			{
				if((ret = screen(opt,optarg)) != EXIT_SUC)
				{
					return ret;
				}
			}
			break;
		case 't'://获取实时温度值分支
			if((ftmp = get_temp()) != 0)
			{
				//成功返回输出读取到的温度值
				printf("temperature:[%f]\n",ftmp);
			}
			break;
		case 'k'://提取和设置实时时钟分支
			if(optarg != NULL)
			{
				char *buf = NULL;
				if((buf = clock(optarg)) != NULL)
				{	
					//成功返回输出RTC实时时钟信息			
					printf("RTC clock:[%s]\n",buf);
				}
			}
			break;
		case 'f'://提取fpga配置文件名分支
			if(optarg != NULL)
			{		
				if((ret = fpga(optarg)) != EXIT_SUC)
				{
					return ret;
				}
			}
			break;
		case 'c'://提取命令行cron任务记录字符串，并写记录文件
			if(optarg != NULL)
			{
				if((ret = cronwork(optarg)) != EXIT_SUC)
				{
					return ret;
				}
			}
			break;
		default:
			break;
		}
	}

	return EXIT_SUC;
}





